/**
 * Project Name: mms-provider-user
 * File Name: IEmployeeService
 * Package Name: com.scb.dev.mms.service
 * Date: 2018/11/27 1:00 PM
 * Copyright (c) 2018, Wang, Haoyue All Rights Reserved.
 */
package com.scb.dev.mms.service;

import com.scb.dev.mms.common.ResponseResult;
import com.scb.dev.mms.pojo.Employee;

/**
 * ClassName: IEmployeeService
 * Description: EmployeeService 业务接口
 * Date: 2018/11/27 1:00 PM
 *
 * @author Wang, Haoyue
 * @version V1.0
 * @since JDK 1.8
 */
public interface IEmployeeService {

    /**
     * insertEmployee: 添加新职员
     *
     * @param employee  新职员对象
     * @return  操作成功: {true, "添加成功", 202}
     */
    ResponseResult insertEmployee(Employee employee, String accountId);

    /**
     * deleteEmployee: 通过职员ID删除职员
     *
     * @param employeeId    职员ID
     * @return  操作成功: {true, "删除成功", 203}
     */
    ResponseResult deleteEmployee(String employeeId, String accountId);

    /**
     * deleteEmployeeByPositionId: 通过职位ID删除职员
     *
     * @param employeePositionId    职员职位ID
     * @return  操作成功: {true, "删除成功", 203}
     */
    ResponseResult deleteEmployeeByPositionId(String employeePositionId);

    /**
     * updateEmployee: 更新职员信息
     *
     * @param employee  职员对象
     * @return  操作成功: {true, "更新成功", 204}
     */
    ResponseResult updateEmployee(Employee employee, String accountId);

    /**
     * queryOne: 通过职员ID查询职员信息
     *
     * @param employeeId    职员ID
     * @return  操作成功: {true, "查询成功", 201}
     */
    ResponseResult queryOne(String employeeId);

    /**
     * queryName: 通过职员ID查询职员昵称
     *
     * @param employeeId    职员编号
     * @return  {true, "查询成功", 201}
     */
    ResponseResult queryNickname(String employeeId);

    /**
     * queryAll: 查询所有职员
     *
     * @return  操作成功: {employeeList, true, "查询成功", 201}
     */
    ResponseResult queryAll();

    ResponseResult queryAllEmployee();

    /**
     * checkIsExistByPositionId: 通过职位ID查询是否有对应的职员
     *
     * @param employeePositionId
     * @return
     */
    ResponseResult checkIsExistByPositionId(String employeePositionId);

    /**
     * @Description: update roleId by roleId
     * @author: YouYu 游宇
     * @methodName: updateRoleId
     * @param: String roleId
     * @returnType: ResponseResult
     * @createTime: 12/9/2018 9:30 AM
     **/
    ResponseResult setDefaultRoleId(String roleId);
}
